package br.com.foxinline.manager.editar;

import br.com.foxinline.modelo.HistoricoRevisaoAlinhamento;
import br.com.foxinline.modelo.Imovel;
import br.com.foxinline.modelo.RevisaoAlinhamento;
import br.com.foxinline.modelo.Usuario;
import br.com.foxinline.servico.HistoricoRevisaoAlinhamentoServico;
import br.com.foxinline.servico.ImovelServico;
import br.com.foxinline.servico.RevisaoAlinhamentoServico;
import br.com.foxinline.servico.UsuarioServico;
import br.com.foxinline.util.Msg;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

/**
 *
 * @author elyjunior
 */
@ManagedBean
@ViewScoped
public class ManagerEditarRevisaoAlinhamento {

    @EJB
    RevisaoAlinhamentoServico revisaoAlinhamentoServico;
    @EJB
    ImovelServico imovelServico;
    @EJB
    UsuarioServico usuarioServico;
    @EJB
    HistoricoRevisaoAlinhamentoServico historicoRevisaoAlinhamentoServico;
    
    List<HistoricoRevisaoAlinhamento> historicoRevisaoAlinhamentos;
    private RevisaoAlinhamento revisaoAlinhamento;
    private HistoricoRevisaoAlinhamento historicoRevisaoAlinhamento;
    private HistoricoRevisaoAlinhamento editarHistorico;
    private String editarRevisaoAlinhamento;
    
    private Imovel imovel;
    
    Usuario usuario;

    @PostConstruct
    public void init() {
        
        Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        editarRevisaoAlinhamento = params.get("editarRevisaoAlinhamento");
        paramPost();
        usuario = usuarioServico.getCurrentUser();
    }

    public void paramPost() {
        try {
            if (editarRevisaoAlinhamento != null) {
                editarHistorico = historicoRevisaoAlinhamentoServico.find(Long.parseLong(editarRevisaoAlinhamento));
                revisaoAlinhamento = editarHistorico.getRevisaoAlinhamento();
                imovel = revisaoAlinhamento.getImovel();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    
     public void redirectRevisaoAlinhamento() throws IOException {
        ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
        context.redirect("visualizarimovel.xhtml?vImovel="+imovel.getId());
    } 
    
    public void atualizar() {
        try {
            revisaoAlinhamento.setImovel(imovel);
            revisaoAlinhamento.setHistoricoRevisaoAlinhamentos(historicoRevisaoAlinhamentos);
            revisaoAlinhamento.setDatada(new Date());
            revisaoAlinhamentoServico.update(revisaoAlinhamento);
            Msg.messagemInfo(Msg.SuccessFull);

        } catch (Exception erro) {
            erro.printStackTrace();
        }
    }

    public Imovel getImovel() {
        return imovel;
    }

    public void setImovel(Imovel imovel) {
        this.imovel = imovel;
    }

    public RevisaoAlinhamento getRevisaoAlinhamento() {
        return revisaoAlinhamento;
    }

    public void setRevisaoAlinhamento(RevisaoAlinhamento revisaoAlinhamento) {
        this.revisaoAlinhamento = revisaoAlinhamento;
    }
}
